export function isHttp() {
  return window.location.protocol === 'http:';
}

export function isHttps() {
  return window.location.protocol === 'https:';
}

/**
 * 判断当前环境是否为开发环境
 *
 * @returns 如果当前环境是通过HTTP访问的，并且主机名为'localhost'或'127.0.0.1'，则返回true；否则返回false
 */
export function isDev() {
  return (
    isHttp() &&
    (window.location.hostname === 'localhost' || window.location.hostname === '127.0.0.1')
  );
}

/**
 * 判断当前是否为test环境
 * @returns
 */
export function isTest() {
  // 测试域名
  const testHost = ['test'];
  const hostname = window.location.hostname;
  // 获取主机名的后缀部分
  const domain = hostname.split('.').slice(-2, -1)[0]; // 取倒数第二个部分
  // 检查当前 domain 是否在 releaseHosts 中
  return testHost.includes(domain);
}

/**
 * 判断当前是否为预发布环境
 * @returns
 */
export function isPreRelease() {
  // 预发布域名
  const preReleaseHost = ['release'];
  const hostname = window.location.hostname;

  // 获取主机名的后缀部分
  const domain = hostname.split('.').slice(-2, -1)[0]; // 取倒数第二个部分

  // 检查当前 domain 是否在 releaseHosts 中
  return preReleaseHost.includes(domain);
}

/**
 * 判断当前是否为线上环境
 * @returns
 */
export function isRelease() {
  if (isTest()) {
    return false;
  }
  const releaseHost = ['zz', 'ddd'];
  const hostname = window.location.hostname;

  // 获取主机名的后缀部分
  const domain = hostname.split('.').slice(-2, -1)[0]; // 取倒数第二个部分

  // 检查当前 domain 是否在 releaseHosts 中
  return releaseHost.includes(domain);
}

export function isDevOrTest() {
  return isDev() || isTest();
}

export const appVersion = '1.0.2';

const EnvUtils = {
  isDev,
  isHttp,
  isHttps,
  isPreRelease,
  isRelease,
  isTest,
  isDevOrTest,
  appVersion,
};

export default EnvUtils;
